System, Method and Apparatus for Configuring a Node in a Sensor Network

ABSTRACT

A system, method and apparatus for configuring a node in a sensor network. A sensor service can enable sensor applications to customize the collection and processing of sensor data from a monitoring location. In one embodiment, sensor applications can customize the operation of nodes in the sensor network via a sensor data control system.

This application is a continuation of non-provisional application Ser.No. 14/996,442, filed Jan. 15, 2016, which is a continuation-in-part ofnon-provisional application Ser. No. 14/862,280, filed Sep. 23, 2015,which is a continuation-in-part of non-provisional application Ser. No.14/710,170, filed May 12, 2015, non-provisional application Ser. No.14/710,191, filed May 12, 2015, non-provisional application Ser. No.14/710,209, filed May 12, 2015, non-provisional application Ser. No.14/710,247, filed May 12, 2015, non-provisional application Ser. No.14/710,652, filed May 13, 2015, non-provisional application Ser. No.14/710,711, filed May 13, 2015, and non-provisional application Ser. No.14/710,766, filed May 13, 2015. Non-provisional application Ser. Nos.14/710,170, 14/710,191, 14/710,209, 14/710,247, 14/710,652, 14/710,711,14/710,766 each claim the benefit of and priority to provisionalapplication No. 61/992,307, filed May 13, 2014, and to provisionalapplication No. 62/136,959, filed Mar. 23, 2015. Each of theabove-identified applications is incorporated herein by reference in itsentirety.

BACKGROUND Field

The present disclosure relates generally to sensor applications,including a system, method and apparatus for configuring a node in asensor network.

Introduction

Sensors can be used to monitor physical environment conditions. Wirelesssensor networks can be used to collect data from distributed sensors andto route the collected sensor data to a central location.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features can be obtained, a more particular descriptionwill be rendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments and are not therefore to be consideredlimiting of its scope, the disclosure describes and explains withadditional specificity and detail through the use of the accompanyingdrawings in which:

FIG. 1 illustrates an example of a sensor data management system.

FIG. 2 illustrates an example framework that enables discrete sensorapplication development in a sensors as a service model.

FIG. 3 illustrates example sensor applications that leverage a sensorservice accessible via a network.

FIG. 4 illustrates a first example of a sensor application process.

FIG. 5 illustrates an example embodiment of a node device.

FIG. 6 illustrates an example embodiment of a sensor module unit.

FIG. 7 illustrates an example embodiment of a housing of a node devicethat exposes connector interfaces.

FIG. 8 illustrates an example embodiment of a housing of a sensor moduleunit.

FIG. 9 illustrates an example embodiment of a node device attached to aplurality of sensor module units.

FIG. 10 illustrates an example computation of a hash value using a hashfunction.

FIG. 11 illustrates a framework of a configuration update.

FIG. 12 illustrates a second example operation of a sensor applicationprocess.

FIG. 13 illustrates a third example operation of a sensor applicationprocess.

FIG. 14 illustrates a framework for delivering control actions.

FIG. 15 illustrates a framework for handling local actions.

DETAILED DESCRIPTION

Various embodiments are discussed in detail below. While specificimplementations are discussed, it should be understood that this is donefor illustration purposes only. A person skilled in the relevant artwill recognize that other components and configurations may be usedwithout parting from the spirit and scope of the present disclosure.

Sensors provide a mechanism for discovering and analyzing a physicalenvironment at a monitored location. In general, a monitored locationcan represent any area where one or more sensors are deployed. Themonitored location may or may not represent a physical area havingclearly defined boundaries. As would be appreciated, the extent of thesensor application itself provides a sense of boundary to the monitoredlocation. In one example, the monitored location can represent abuilding such as a home, hotel, industrial facility, school, hospital,community building, stadium, airport, convention center, warehouse,office building, mall, shopping center, data center, multi-dwellingunit, or other defined building structure. In another example, themonitored location can represent an area of control such as a vehicle orcontainer in any mode of transport, an asset collection area, aconstruction zone, or any monitored area that can be fixed or movable.In yet another example, the monitored location can represent an areaproximate to an article, device, person or other item of interest uponwhich one or more sensors are attached.

FIG. 1 illustrates an example of the collection and analysis of datafrom sensors installed at a monitored location. As illustrated, sensordata management system 100 collects sensor data from a plurality ofsensors installed at monitored location 110. This collection portion ofsensor data management system 100 provides sensor data to control andanalysis portion 120. Control and analysis portion 120 includes database122 for storage of the collected sensor data. Dashboard 123 can beembodied as an online platform that allows a customer to view the sensordata from monitored location 110. Dashboard 123 can therefore representa management tool authored by sensor data management system 100 thathelps promote customer understanding of the sensor data.

In one example, sensor data management system 100 can represent anend-to-end solution provided by a single vendor that enters into aservice contract with a customer. Under the terms of the contract, thevendor can install the sensor hardware at monitored location 110,collect, process and store sensor data in database 122, and provide thecustomer with visibility to the sensor data via dashboard 123. In thisexample framework, the vendor would operate and otherwise control allaspects of sensor data management system 100 in providing asingle-vendor solution to the customer. This single-vendor solution maynot enable a full implementation of sensors as a service.

Notably, the customer would have a relationship with the single vendorthat installed the sensor hardware at monitored location 110. Thissingle vendor would control access to the sensor data in database 122.The vendor's dashboard 123 would therefore represent the only means bywhich a customer can view the sensor data. A consequence of thisrestriction is that the customer is reliant on the vendor's dashboardfor every aspect of analytics and other functionality needed by thecustomer. Dashboard 123 would necessarily be positioned as anall-encompassing solution. Rarely are such solutions optimized for therange of solutions required for the particular needs of a variety ofcustomers. For example, the vendor's dashboard may have industry-leadingfunctionality in a first area, while having average functionality in asecond area. Since the customer has a relationship with the singlevendor for a single solution, the customer would have difficultyleveraging industry-leading functionality offered by a second vendor inthe second area. Moreover, the customer would not be able to change tothe second vendor because the first vendor effectively owns the sensorhardware installed at the monitored location. A suboptimal solution forthe customer therefore results.

In the present disclosure it is recognized that single-vendor solutionscan potentially impede the creation of sensors as a service. Thedeployment of individual sensors at a monitored location is part of thegrowing trend of the Internet of Things (IoT). The connectivity of theindividual sensors through a wireless sensor network enables inclusionof those sensors as part of an open network. A single-vendor solutionunfortunately restricts access to the sensors as well as to the datacollected by them. In contrast, the sensors as a service model seeks topromote the open usage of the sensors and the data collected by them toany party having an interest in at least part of the monitored location.

FIG. 2 illustrates an example framework that enables discrete sensorapplication development in a sensors as a service model. Central to thissensors as a service model is sensor data control system 220. Ingeneral, one or more servers in sensor data control system 220 can beconfigured to facilitate the various processes that enable a collectionof sensor data from the plurality of monitored locations 210-n,processing and storage of sensor data in a database, and a distributionof sensor data to a plurality of sensor applications 230-n. Theplurality of monitored locations 210-n and the plurality of sensorapplications 230-n can interface with sensor data control system 220 viaweb application programming interface (API) 240. In one embodiment, webAPI 240 would be based on HTTP methods such as GET, PUT, POST, andDELETE.

As illustrated, sensor data control system 220 can collect sensor datafrom the plurality of monitored locations 210-n via web API 240. Forexample, sensor data control system 220 can receive the latest sensorreadings using HTTP POST methods from the plurality of monitoredlocations 210-n. Via web API 240, sensor data control system 220 cancollect a first set of sensor data from a first plurality of sensorsinstalled at a first monitored location, collect a second set of sensordata from a second plurality of sensors installed at a second monitoredlocation, . . . and collect an N^(th) set of sensor data from an N^(th)plurality of sensors installed at an N^(th) monitored location. The Ncollected sets of sensor data can be stored in a database as sensor data221. In one embodiment, aggregation data 222 can also be generated bysensor data control system 220 based on sensor data 221. In general,aggregation data 222 can represent any processed form of sensor data221.

In one application, a sensor data value can be transformed via a definedconversion relationship into a single aggregation data value. Forexample, a number of detected pulses can be transformed using a definedconversion relationship into a measure of consumption (e.g., power). Inanother application, a plurality of sensor data values can be processedthrough a defined conversion relationship into a single aggregation datavalue. For example, a plurality of sensor data values can be analyzed todetermine whether an alert should be triggered. In another example, aplurality of sensor data values such as voltage and current can beprocessed to produce a measure of power. In yet another scenario, aplurality of sensor data values can be grouped together into anaggregation of data values. For example, a plurality of sensor datavalues can be grouped together to produce a customer report.

Sensor data 221 and/or aggregation data 222 are accessible by aplurality of sensor applications 230-n via web API 240. Morespecifically, sensor data control system 220 can provide a first set ofsensor data 221 and/or aggregation data 222 upon request by a firstsensor application, provide a second set of sensor data 221 and/oraggregation data 222 upon request by a second sensor application, . . .and provide an N^(th) set of sensor data 221 and/or aggregation data 222upon request by an N^(th) sensor application. Each of the distributedsets of sensor data 221 and/or aggregation data 222 can support therespective needs of the requesting sensor application 230-n. Therespective needs can relate to all or part of one or more monitoredlocations 210-n. The scope of a sensor application 230-n in meeting aparticular customer need would dictate the amount of sensor data 221and/or aggregation data 222 that is provided.

In one scenario, the set of sensor data 221 and/or aggregation data 222can relate to a specific set of sensors in a part of a monitoredlocation 210-n occupied by a building tenant. In another scenario, theset of sensor data 221 and/or aggregation data 222 can relate to aparticular type of sensors (e.g., power) in one or more monitoredlocations 210-n. In yet another scenario, the set of sensor data 221and/or aggregation data 222 can relate to a subset of sensors in aparticular monitored location over a specified time period (e.g., day,week, month, or other defined period of time) to perform an audit ofconditions of the physical environment at that monitored location. Here,it should also be noted, that the set of sensor data 221 and/oraggregation data 222 provided to a first sensor application can overlapin part with the set of sensor data 221 and/or aggregation data 222provided to a second sensor application.

As would be appreciated, a distributed set of sensor data 221 and/oraggregation data 222 can be customized to the needs of a particularsensor application 230-n. In that way, the systematic collection,processing and storage of sensor data by sensor data control system 220can be viewed as a sensor service from the perspective of sensorapplications 230-n. Significantly, any sensor application 230-n canrequest data associated with any sensor at any monitored location 210-nover any time period via web API 240. New sensor applications cancontinually be developed for analysis of sensor data 221 and/oraggregation data 222, thereby increasingly leveraging sensor data 221and aggregation data 222. Sensor data control system 220 can thereforebe positioned as a sensor data service platform upon which front-endsensor applications 230-n can be built.

In implementing a full-featured sensor service, sensor data controlsystem 220 can also enable sensor applications 230-n to customize thecollection and processing of sensor data. This customization increasesthe adaptability and flexibility of the sensor service in meeting theneeds of the sensor applications 230-n. In one embodiment, sensorapplications 230-n can customize the operation of sensor data controlsystem 220 using web API 240. These customizations can be stored in adatabase as settings 223.

In one example, a sensor application 230-n can specify a conversionfunction via web API 240 for application to one or more values of sensordata. The conversion function can be stored in the database as settings223 and applied to one or more values of sensor data 221 to produce oneor more values of aggregation data 222. In this manner, a sensorapplication 230-n can specify one or more conversion functions that areconfigured to prepare a set of inputs for use by the sensor application230-n. One advantage of the specification of such conversion functionsis that the sensor application 230-n is assured of receiving data of aknown type, of a known quantity, of a known accuracy, of a known format,or of any other expected characteristic for processing by the sensorapplication 230-n. In one scenario, this can be used to ensure thatsensor application 230-n can be easily re-purposed from another sensorapplication environment to the particular sensor service supported bysensor data control system 220. In general, the conversion functions canbe used to create standardized outputs from data generated by differenttypes of sensors. Another advantage of the specification of suchconversion functions is that the sensor application 230-n can bedesigned to operate at a specified level of complexity relative tosensor data control system 220. In one scenario, sensor application230-n can offload analysis functions to sensor data control system 220,thereby enabling the sensor application to perform simple functions(e.g., alerts) on received aggregation data 222. This scenario would beuseful in allowing sensor application 230-n to be implemented as alight-weight sensor application 230-n for download and installation on amobile computing device. This would be in contrast to a full-featuredsensor application 230-n that is intended for installation on a serverdevice and which is designed for heavy-duty processing and analysisfunctions. As would be appreciated, conversion functions can be used tofacilitate a customized interaction between a sensor application 230-nand sensor data control system 220.

In another example, a sensor application 230-n can specify destinationsfor the distribution of sensor data 221 and/or aggregation data 222. Forexample, a sensor application 230-n can specify that separate subsets ofsensor data 221 and/or aggregation data 222 are distributed to differentdestinations. In this framework, the separate subsets of sensor data 221and/or aggregation data 222 may or may not correspond to distinctphysical parts of a monitored location. More generally, each subset ofsensor data 221 and/or aggregation data 222 can relate to a separateinterest by a sensor application to sensor data 221 and/or aggregationdata 222 produced by one or more monitored locations. In one embodiment,sensor data 221 and/or aggregation data 222 can be distributed todefined destinations using JavaScript Object Notation (JSON) formattedpackets.

In another example, a sensor application 230-n can specify, via web API240, configuration settings for application to a sensor network at amonitored location 210-n. The control provided by the specification ofthese configuration settings via web API 240 enables a sensorapplication 230-n to remotely configure a sensor network at a monitoredlocation 210-n. In various scenarios, the remote configuration commandswould customize the operation of a sensor network at a monitoredlocation 210-n to meet the needs of a given sensor application 230-n.

In one example, the customization of the operation of a monitoredlocation 210-n can include an activation or deactivation of a sensor atthe monitored location 210-n. This activation or deactivation cancorrespond to particular hours, days, weeks, months, or other periods oftime. In one scenario, the activation or deactivation commands cancorrespond to relevant periods of interest in the sensor data, whereinthe relevant periods of interest correspond to activity relating totenant occupancy, auditing, monitoring and verification, sales support,or other activities that have non-contiguous periods of interest and/orcontrol.

In another example, the customization of the operation of a monitoredlocation 210-n can include a change in the operation of a sensor at themonitored location 210-n. In various scenarios, the change in operationof the sensor can relate to a sensitivity characteristic, an accuracycharacteristic, a power characteristic, an energy saving characteristic,an operating mode characteristic, a data type or format characteristic,or any other characteristic that relates to an operation of the sensoror the data produced by the sensor. In one embodiment, the sensor issupported by a sensor module unit having an interface to the sensor(e.g., Modbus serial communication protocol). In this embodiment, thechange in operation can relate to a device address, a function code, aregister address, or any other parameter that facilitates a collectionof sensor data via the interface. As would be appreciated, the specificinterface supported by the sensor module unit would be implementationdependent.

In another example, the customization of the operation of a monitoredlocation 210-n can include a change in the operation of a node in asensor network at the monitored location 210-n. In various scenarios,the customization can relate to a frequency of sensor data collection, asampling frequency, a power characteristic, an energy savingcharacteristic, an operating mode characteristic (e.g., reset command),a data type or format characteristic, or any other characteristic thatrelates to an operation of the node.

After customization commands have been forwarded to a monitored location210-n, the monitored location 210-n can return system update informationvia web API 240. This system update information can be recorded in thedatabase as system status 224. A sensor application 230-n can thenretrieve system status information from sensor data control system 220via web API 240 to confirm that the requested configuration changes havebeen correctly implemented by the sensor network at the monitoredlocation 210-n.

The configuration afforded via web API 240 enables a sensor application230-n to customize the operation of a sensor network from a locationremote from the monitored location 210-n. Notably, the sensorapplication 230-n can customize the operation of only part of the sensornetwork at a monitored location 210-n. For example, a first sensorapplication can be configured to provide an energy management companywith a view of sensor data relating to power consumption at a building,while a second sensor application can be configured to provide a tenantin the building with a view of sensor data relating to ambientconditions (e.g., temperature and humidity) in a part of the building.As these examples illustrate, a plurality of sensor applications 230-ncan be configured to leverage different subsets of sensors at one ormore monitored locations 210-n. From that perspective, sensor datacontrol system 220 provides a sensor service to a plurality of sensorapplications 230-n having varied interests into the detected physicalenvironment at the various monitored location 210-n.

FIG. 3 illustrates example sensor applications that can leverage asensor service accessible via a network. As illustrated, sensor service320 can be accessible by a plurality of sensor applications via web API340. In one example, sensor service 320 can be embodied as a sensor datacontrol system such as that described with reference to FIG. 2 . Asnoted, a sensor data control system can be configured to control thecollection, processing, storage, and distribution of sensor datareceived from a plurality of monitored locations. The database of sensordata and aggregation data for the plurality of monitored locations canbe leveraged by any application having an interest in any part of adetected physical environment reflected by the sensor data and/oraggregation data. Once installed, the sensor networks at the pluralityof monitored locations become part of a sensor network infrastructurethat can serve the needs of any interested party, whether or not theinterested party was involved in the original deployment of the sensornetworks.

Sensor service 320 can be used by a variety of sensor applications thatcan be designed to meet customer needs at any level of granularity. Inthe present disclosure, it is recognized that sensor service 320 cansupport a marketplace or solution store of sensor applications. In thisframework, a sensor application provider can offer their sensorapplication to any customer having an interest in any part of a detectedphysical environment reflected by sensor data and/or aggregation dataoffered by sensor service 320.

To illustrate this marketplace framework, consider an example of atenant that signs a lease for office space in a building. The tenantcould use a first sensor application that provides energy managementfunctionality, use a second sensor application that provides tenantbilling features, and use a third sensor application that providesreports on ambient conditions in a climate-controlled storage area. Asthis example illustrates, the tenant can select a particular set ofsensor applications to provide the analytics and other information thetenant needs during occupancy of the leased space. Should a new tenantlease the same space, the new tenant can then select a different set ofsensor applications to meet their own particular needs during occupancyof the leased space.

As illustrated in FIG. 3 , a marketplace for sensor applications can besegmented into a plurality of categories. A first example category caninclude Resource Management sensor applications that can each beconfigured to manage consumable resources such as electricity, water,gas, storage space, office space, conference rooms, or any othermeasured resource. A second example category can include Monitoring andVerification sensor applications that can each be configured to monitorand verify operation of a system (e.g., HVAC) in a monitored location.In one example, a monitoring and verification application can be used toperform audits of a system in a monitored location. A third examplecategory can include Tenant Billing sensor applications that can each beconfigured to generate bills for tenants for measured usage of someresource (e.g., electricity). A fourth example category can includeReports and Alerts sensor applications that can each be configured toperform compilation and analysis of sensor data and/or aggregation data.In one example, an alert sensor application can include complex analyticfunctions that can predict occurrence of future maintenance actions at amonitored location based on historical data produced by one or moresensors. A fifth example category can include Control sensorapplications that can each be configured to implement a control actionbased on an analysis of sensor data and/or aggregation data. In oneexample, a control sensor application can be configured to restrictusage of a consumable resource based on an analysis of current usagerelative to a budget. A sixth example category can include IndustrySpecific sensor applications that are targeted to a particular industrycontext. For example, a first set of sensor applications can bespecifically directed to the particular needs of schools, while a secondset of sensor applications can be specifically directed to theparticular needs of condominium buildings. As these example categoriesillustrate, sensor service 320 can support the development of discretesensor applications that can be applied to any defined market segment.In general, the particular functionality needed by a customer can definea new category of sensor applications. Sensor service 320 supports thedevelopment of discrete sensor applications to meet any customer need.In comparison to a one-size-fits-all model, discrete sensor applicationsenable efficient and cost-effective solutions for customers.

To illustrate the operation of a sensor data control system in providinga sensor service, reference is now made to FIG. 4 , which illustrates afirst example of a sensor application process. As illustrated, monitoredlocation 410 includes gateway 411, which communicates with sensor datacontrol system 420 via a network connection. The network connection canbe embodied in various forms depending upon the particularcharacteristics of monitored location 410. For example, where monitoredlocation 410 is a building in a developed area, then the networkconnection can be facilitated by a wired Internet connection via anInternet service provider (ISP). In another example, the networkconnection can be facilitated by a terrestrial or satellite basedwireless network to accommodate a remote physical area (or movable area)that may or may not include a building structure. Here, it should benoted that multiple gateways can be used at a monitored location,wherein each gateway supports a different set of nodes and has aseparate network connection to an operation center.

In one embodiment, gateway 411 communicates wirelessly with a pluralityof nodes 412-n that form a wireless mesh network. In one embodiment, thecommunication protocol between the plurality of nodes 412-n is based onthe IEEE 802.15.4 protocol. The wireless mesh network can be used tofacilitate bi-directional communication between sensor data controlsystem 420 and the plurality of nodes 412-n. Prior to describing thedetails of the sensor application process of FIG. 4 , a description ofexample sensor network components is first provided.

FIG. 5 illustrates an example embodiment of a node device in the sensornetwork. As illustrated, node device 500 includes controller 510 andwireless transceiver 520. Wireless transceiver 520 facilitates wirelesscommunication between node device 500 and a gateway or another node thatoperates as a relay between node device 500 and the gateway. In oneembodiment, node device 500 includes a wired transceiver (e.g.,Ethernet) in addition to or as a replacement for wireless transceiver520. The wired transceiver would enable node device 500 to communicatewith a gateway over a wired link.

Controller 510 collects sensor measurements from a set of sensor moduleunits via one or more universal sensor interfaces 530-n. Controller 510can also collect measurements from one or more sensors 540-n that arecontained within or otherwise supported by a housing of node device 500.In various scenarios, the one or more sensors 540-n can facilitatemonitoring at that part of the monitored location, including the healthand/or status of node device 500. Each universal sensor interface 530-ncan support the connection of node device 500 with a separate sensormodule unit. The plug-and-play universal sensor interface facilitatesthe separation of the node communication infrastructure from the set ofone or more sensor module units that are deployed at the location atwhich the supporting node is installed.

Universal sensor interfaces 530-n can represent a combination ofhardware and software. The hardware portion of universal sensorinterfaces 530-n can include a wired interface that enablescommunication of different signals between node device 500 and aconnected sensor module unit. In one example, the wired interface can beenabled through a connector interface, which is exposed by the housingof node device 500, and that is configured to receive a sensor moduleunit connector via removable, pluggable insertion.

In one embodiment, the wired interface can be based on a SerialPeripheral Interface (SPI) bus. In one example, the wired interfaceenables six connections: supply, ground, data in, data out, clock, anddevice select. The device select connection can be unique to each wiredinterface and can enable controller 510 in node device 500 to select theparticular sensor module unit with which node device 500 desires tocommunicate.

The software portion of the universal sensor interfaces 530-n caninclude a protocol that allows node device 500 to communicate with asensor module unit. In one example protocol, controller 510 can beconfigured to poll the various universal sensor interfaces 530-n todetermine whether any sensor module units are connected. As part of thisprotocol, controller 510 can first request a sensor ID from a sensormodule unit. If the response read is “0”, then controller 510 would knowthat no sensor module unit is connected to that universal sensorinterface 530-n. If, on the other hand, the response read is not “0”,then controller 510 would ask for the number of data values that have tobe retrieved and the number of bits on which the data values are coded.In one example, the higher order 8-bits of a 16-bit communicationbetween controller 510 and a sensor module unit identifies the number ofdata values, while the lower order 8-bits of the 16-bit communicationidentifies the number of bits used to code each data value. Based on thenumber of data values to be retrieved, controller 510 would then collectthat number of data values, wherein each value can represent a differentsensor channel of the sensor module unit.

FIG. 6 illustrates an example embodiment of a sensor module unitdesigned for attachment to a node device, an example of which wasdescribed with reference to FIG. 5 . As illustrated, sensor module unit600 includes controller 610 that communicates over a universal sensorinterface with a supporting node device. In one embodiment, sensormodule unit 600 supports the universal sensor interface with a connector620 configured for pluggable, removable insertion into a correspondingconnector interface exposed by the supporting node device. In anotherembodiment, the sensor module unit can be coupled to the connectorinterface exposed by the supporting node device via a connector attachedto a cable.

Sensor module unit 600 can support a plurality of sensors 630-n. Forexample, sensors supported by sensor module unit 600 can enable one ormore of the following: a temperature sensor application, a humiditysensor application, an air quality (e.g., CO₂) sensor application, alight sensor application, a sound sensor application, an occupationsensor application, a radiation sensor application, a contact sensorapplication, a pulse sensor application, a water sensor application, apower sensor application, a credential sensor application, or any othertype of sensor application configured to measure a characteristicassociated with a physical environment of a part of the monitoredlocation.

In one embodiment, a sensor can cooperate with an external sensorelement to produce sensor data. For example, sensor 630-2 can cooperatewith external sensor element 640 to gather energy monitoring data. Inone scenario, sensor 630-2 can be embodied as a pulse sensor that isconfigured to connect to an external energy monitoring meter product. Inanother scenario, sensor 630-2 can communicate with external sensorelement 640 via a Modbus interface, BACnet interface, or any otherinterface designed for communication with a monitoring product. As wouldbe appreciated, the particular method of cooperation between internaland external sensor elements supported by sensor module unit 600 wouldbe implementation dependent.

The plug-and-play nature of the connection of sensor module units tosupporting node devices facilitates a modular framework for installationof nodes at a monitored location. FIG. 7 illustrates an exampleembodiment of a housing of a node device such as the exampleillustration of node device 500 in FIG. 5 . As illustrated, node device700 can have a housing configured to expose a plurality of connectorinterfaces 710. Each of the plurality of connector interfaces 710 cansupport the physical attachment of a single sensor module unit. In theexample illustration, each side of the housing of node device 700exposes a single connector interface 710. In the present disclosure, itis recognized that the housing of the node device can be substantiallylarger than the housing of the sensor module unit. This can result, forexample, because the node device can be designed with additionalcomponents such as an internal power source (e.g., battery) that caninvolve additional volume requirements as compared to the sensor moduleunits. It is therefore recognized that one embodiment of a node devicecan have multiple sensor module units physically attached to a singleside of the node device.

FIG. 8 illustrates an example embodiment of a housing of a sensor moduleunit such as the example illustration of sensor module unit 600 in FIG.6 . As illustrated, sensor module unit 500 can have a housing configuredto support a connector 810. Connector 810 can be configured forpluggable, removable insertion into a corresponding connector interface710 exposed by the housing of node device 700. The connection of sensormodule unit 800 to node device 700 via the insertion of connector 810into connector interface 710 produces a true plug-and-play framework forthe deployment of sensors at a monitored location.

FIG. 9 illustrates an example data flow between a node device, such asthe example illustration of node device 500 in FIG. 5 , and a pluralityof supported sensor module units. As illustrated, node device 900interfaces with a plurality of sensor module units, including sensormodule unit 920-1, sensor module unit 920-2, . . . , and sensor moduleunit 920-N. Connectors of sensor module unit 920-1, sensor module unit920-2, . . . , and sensor module unit 920-N are each physically attachedto separate connector interfaces exposed by the housing of node device900. The attachment of sensor module unit 920-1 to node device 900enables communication of data between controller 921-1 and controller910, the attachment of sensor module unit 920-2 to node device 900enables communication of data between controller 921-2 and controller910, . . . , and the attachment of sensor module unit 920-N to nodedevice 900 enables communication of data between controller 921-N andcontroller 910. By these attachments, each of sensor module units 920-1,920-2, . . . , and 920-N can be coupled to node device 900 via auniversal sensor interface having the connectivity characteristicsdescribed above.

As noted, the network formed by node devices at a monitored locationcreates a communication infrastructure. This communicationinfrastructure enables the various sensors supported by a plurality ofsensor module units dispersed around the monitored location tocommunicate with a gateway device at the monitored location. The gatewaydevice can interface with a sensor data control system via a publicnetwork.

Having described the details of the sensor network components at amonitored location, a detailed description of the example sensorapplication process of FIG. 4 is now provided. In this example, assumethat sensor application 430 requires (1) data from sensor readings fromsensors in sensor module unit S3 attached to node device 412-1 to betaken every 60 seconds, (2) a voltage measurement and currentmeasurement to be combined into a power measurement, and (3) theresulting power measurement data to be placed into a particular dataformat for input into an analytics module of sensor application 430. Invarious scenarios, the data format can relate to singular data valuesand/or can relate to multiple data values in the context of a report.

As illustrated, the process can begin with the communication by sensorapplication 430 of configuration settings to sensor data control system420. This part of the process is illustrated as process element “1” inFIG. 4 . Sensor application 430 can submit configuration settings tosensor data control system 420 via web APIs. The submitted configurationsettings can be stored in a database as settings 421, and can be used asthe basis for adjusting the configuration of the sensor network atmonitored location 410 and to adjust the processing of sensor data 422received from monitored location 410. In this example, a firstconfiguration setting can be stored that would be the basis formodifying a data collection period of the sensors in sensor module unitS3 attached to node 412-1, a second configuration setting can be storedthat would be the basis for a conversion function for generation of apower measurement from a voltage measurement and current measurementtaken by the sensors in sensor module unit S3 attached to node 412-1,and a third configuration setting can be stored that would be the basisfor a conversion function to place the generated power measurement intothe data format desired by sensor application 430.

As noted, the web API supported by the sensor data control system can bebased on HTTP methods such as GET, PUT, POST, and DELETE. In submittingconfiguration settings to sensor data control system 420, sensorapplication 430 can use an HTTP PUT method to update a configurationsetting that controls a data collection period. For example, thefollowing HTTP PUT method can be used to define a data collection periodfor sensor module unit S3 attached to node device 412-1 at monitoredlocation 410 as follows:

-   -   PUT https://api.senseware.co/Config/Node412_1/S3        {“pollingfreq”:“60”}        As this example illustrates, the HTTP PUT method can include a        host name “api.senseware.co”, an identifier for node device        412-1, and an identifier for sensor module unit S3. This        information enables sensor data control system 420 to identify        the target of the configuration setting related to the sensor        data collection period. In the body of the request, the        “pollingfreq” is set to 60 seconds.

In one embodiment, the identifier for sensor module unit S3 can besufficiently unique in the context of monitored location 410 such thatthe identifier for node device 412-1 is not needed in the HTTP PUTmethod. In another embodiment, a particular sensor module unit can beidentified by a port identifier, which identifies the particularconnector interface of node device 412-1 to which a particular sensormodule unit is attached. For example, where node device 412-1 supportsfour sensor module units S1-S4, then each of the four sensor moduleunits can be uniquely identified by a port identifier having a value inthe range of 1-4.

In one embodiment, the sensor data collection period can be applied toevery sensor supported by a sensor module unit. In another embodiment,the sensor data collection period can be applied to individual sensorssupported by a sensor module unit. For example, a first sensor supportedby a sensor module unit can have a first sensor data collection period,while a second sensor supported by the sensor module unit can have asecond sensor data collection period. To support sensor-specific datacollection periods, a further specification of particular sensorssupported by the sensor module unit can be included in the HTTP PUTmethod. For example, the HTTP PUT method can further include one or moreidentifiers for individual sensors.

Sensor application 430 can use the web API (e.g., HTTP POST method) tosubmit configuration settings for a first conversion function thatgenerates a power measurement from a voltage measurement and currentmeasurement, and a second conversion function that places the powermeasurement into the data format desired by sensor application 430. Forexample, the following HTTP POST method can be used to define the firstconversion function that generates a power measurement from a voltagemeasurement and current measurement as follows:

-   -   POST https://api.senseware.co/Convert/Node412_1/S3        {“convfxn”:“PowerFxnA”, “V_In”:“channel_1”, “I_In”:“channel_2”}        As this example illustrates, the HTTP POST method can create a        new conversion function for sensor module unit S3. In the body        of the request, the selected conversion function can represent        one of a library of conversion functions, which is identified        using an index into the library. Also specified in the body of        the request are the two sensor channel identifiers representing        the voltage input (V_In) and the current input (I_In).

Sensor application 430 can similarly use the web API to submitconfiguration settings for the second conversion function. Theconfiguration settings for the two conversion functions and the sensordata collection period are submitted via one or more method calls viathe web API and are stored in the database as settings 421.

As illustrated in FIG. 4 , the stored configuration settings thatspecify the new data collection period can be used by sensor datacontrol system 420 in generating a configuration setup request(illustrated as process element “2” in FIG. 4 ) for delivery to gateway411 at monitored location 410. In one embodiment, the configurationsetup request is an HTTP message delivered in response to a systemstatus update message from node device 412-1 (e.g., HTTP POST method)received by sensor data control system 420 from gateway 411 via the webAPI. For example, when the system status update is received, sensor datacontrol system 420 can compare the current configuration setting (e.g.,default sensor data collection period) to the newly stored customconfiguration setting in the database. When the comparison indicatesthat the current configuration does not match the newly stored customconfiguration setting, then sensor data control system 420 can initiatethe transmission of a configuration setup request having the newlystored custom configuration setting. In one embodiment, the comparisoncan be based on a computed hash value of the configuration settings thatis included in the system status update.

The hash value is computed using a hash function. In general, a hashfunction can represent any function that can map data of arbitrary sizeto data of fixed size. FIG. 10 illustrates an example computation of ahash value using a hash function. In one embodiment, the configurationsettings data are separated into two parts 1010A and 1010B that form thehigh-end and low-end parts of data block 1020. The particular type andamount of configuration settings data that would be included in datablock 1020 would be implementation dependent. Data block 1020 isprovided as input to hash function 1030. Hash function 1030 would thenproduce hash value 1040.

As noted, the transmission of the configuration setup request to gateway411 can be conditioned on a comparison of computer hash values generatedbased on configuration settings. FIG. 11 illustrates a framework of aconfiguration update. In the illustrated example, sensor data controlsystem 1120 can receive configuration request 1130. In one example, theconfiguration request can be received from a sensor application. Inanother example, the configuration request can be generated internallyby sensor data control system 1120.

Configuration request 1130 can be used to modify one or moreconfiguration settings 1122 stored by sensor data control system 1120,wherein the modified one or more configuration settings reflect aconfiguration change desired to be applied at a node at monitoredlocation 1110. Configuration settings 1122 are used by a hash functionto generate reference hash value 1124. Reference hash value 1124 can beevaluated using comparison 1126 relative to status hash value 1114,which is received by sensor data control system 1120 as part of a systemstatus update from a node device at monitored location 1110.Configuration settings 1112 currently used by the node are provided asinput to the same hash function to generate status hash value 1114 atmonitored location 1110.

If comparison 1126 indicates that reference hash value 1124 matchesstatus hash value 1114, then sensor data control system 1120 would knowthat the configuration settings used to generate reference hash value1124 and the configuration settings used to generate status hash value1114 are the same. In other words, configuration settings 1112 currentlyused by the node at monitored location 1110 matches configurationsettings 1122 stored for the node by sensor data control system 1120. Anupdate of configuration settings 1112 for the node at monitored location1110 would therefore be unneeded.

If, on the other hand, comparison 1126 indicates that reference hashvalue 1124 is different from status hash value 1114, then sensor datacontrol system 1120 would know that the configuration settings used togenerate reference hash value 1124 and the configuration settings usedto generate status hash value 1114 are not the same. In other words,configuration settings 1112 currently used by the node at monitoredlocation 1110 do not match configuration settings 1122 stored for thenode by sensor data control system 1120. This can be the case, forexample, where configuration request 1130 seeks to modify one or moreconfiguration settings 1122 stored by sensor data control system 1120.

When comparison 1126 indicates that reference hash value 1124 isdifferent from status hash value 1114, then a control signal can begenerated that would initiate the transmission of configuration updatepacket 1128 from sensor data control system 1120 to a gateway atmonitored location 1110. Configuration update packet 1128 can includeconfiguration information that can be used to update configurationsettings 1112 at the relevant node at monitored location 1110. Afterconfiguration settings 1112 have been modified using configurationupdate packet 1128 (i.e., the node configuration has been modified), themodified configuration settings 1112 are used to generate a new statushash value 1114. The newly generated status hash value 1114 can then bereturned in a subsequent system status update. When comparison 1126determines that the newly generated status hash value 1114 matchesreference hash value 1124, sensor data control system 1120 would knowthat the configuration update has been successfully applied by the nodeat monitored location 1110.

One of the advantages of using hash values to confirm the configurationsettings of a node is that it would obviate the need for the node totransmit all of the configuration settings 1112 back to sensor datacontrol system 1120 for comparison. This would be especially problematicwhere configuration settings 1112 are voluminous. This can be the case,for example, where configuration settings 1112 include information forcommands over an interface such as Modbus, BACnet, or any other externalinterface.

In one embodiment, reference hash value 1124 and status hash value 1114are each based on configuration settings for both the node device andone or more supported sensor module units. In another embodiment, afirst reference hash value is based on configuration settings for a nodedevice, and one or more additional reference hash values are based onconfiguration settings for one or more respective sensor module unitssupported by the node device. In this embodiment, multiple comparisonscan be performed based on multiple status hash values returned in asystem status update.

Returning to FIG. 4 , the delivery of configuration setup information bysensor data control system 420 to gateway 411 (illustrated as processelement “2”) can be conditioned on a configuration settings check bysensor data control system 420 as described above. Where theconfiguration update relates to an operation of node device 412-1,gateway 411 can deliver a configuration update packet containing theconfiguration setup information to node device 412-1 via the wirelessmesh network. This communication is illustrated as process element “3”in FIG. 4 .

Based on the receipt of configuration setup information via the wirelessmesh network, node device 412-1 can adjust the data collection periodfor sensor module unit S3. This configuration change is illustrated asprocess element “4” in FIG. 4 . Based on the change in configuration,node device 412-1 can collect sensor readings from sensor module unit S3at the newly defined collection period (e.g., 60 seconds). The sensordata values collected at the newly defined collection period can then bedelivered by node device 412-1 to gateway 411 in data packets via thewireless mesh network. This communication is illustrated as processelement “5” in FIG. 4 .

In forwarding the received sensor data value to sensor data controlsystem 420, gateway 411 can prepare an HTTP POST method that submits thelatest sensor data value for recording in the database. Thiscommunication is illustrated as process element “6” in FIG. 4 . Thereceived sensor data value can be stored in a database as sensor data422.

Based on the first defined conversion function stored in settings 421,sensor data control system 420 can transform sensor data 422 intoaggregation data 423. For example, sensor data control system 420 cantransform a first sensor data value based on a voltage measurement and asecond sensor data value based on a current measurement into anaggregation data value reflective of a power measurement. Based on thesecond defined conversion function stored in settings 421, sensor datacontrol system 420 can place one or more aggregation data values into adata format desired by sensor application 430. In one example, thesecond defined conversion function defines a data format for thesingular power measurement data values. In another example, the seconddefined conversion function defines a data format for multiple powermeasurement values in a report. In the illustration of FIG. 4 , thecombined conversion process of the first and second defined conversionfunctions is illustrated as process element “7”. The resultingaggregation data 423 has now been prepared for the particular use bysensor application 430.

In one embodiment, sensor application 430 can retrieve sensor dataand/or aggregation data 423 using an HTTP GET method via the web API.For example, the following HTTP GET method can be used to retrievesensor data for the voltage measurement in a defined range of time(e.g., day, week, month, or other defined period of time) as follows:

-   -   GET        https://api.senseware.co/sensor/Node412-1_ID/S3_ID/Ch1_ID?from=TMk1&to=TMk2        In response to this request, sensor data control system 420 can        return a response as follows:    -   [{“Ch1_ID”,“data”:[[Time1,205],[Time2,203],[Time3,202],[Time4,205],[Time5,203],[Time6,203],[Time7,203],[Time8,202],[Time9,202],[Time10,203]}]        Here, all sensor readings between the two points in time        specified in the request are returned to sensor application 430.        The communication of sensor data 422 and/or aggregation data 423        from sensor data control system 420 to sensor application 430 is        illustrated as process element “8” in FIG. 4 .

As this example process illustrates, sensor application 430 canconfigure a sensor network at a monitored location using a web API. Inthis manner, any sensor application can configure an operation of anysensor network at any monitored location to suit its particular needs.Moreover, any sensor application can configure a customized processingof sensor data collected from any sensor network at any monitoredlocation to suit its particular needs. In essence, sensor application430 can define and configure the particular sensor service it desires toreceive from sensor data control system 420. Significantly, sensorapplication 430 need not have any connection to the installation of thesensor network at the monitored location. From the perspective of sensorapplication 430, the sensor network is part of an establishedinfrastructure that is used only when sensor data is needed and in ascope that is defined by sensor application 430.

FIG. 12 illustrates a second example of a sensor application process. Inthis example, assume that sensor application 1230 requires sensor datafor a defined period of time to support an audit activity. Asillustrated, the process begins with the communication by sensorapplication 1230 of configuration settings to sensor data control system1220. This part of the process is illustrated as process element “1” inFIG. 12 . In one embodiment, sensor application 1230 can submitconfiguration settings to sensor data control system 1220 via web APIs(e.g., HTTP PUT method).

In one example, sensor application 1230 can submit configurationsettings that identify one or more sensors for activation from adeactivation state. In one scenario, the one or more sensors may havebeen deactivated after completion of a previous audit activity thatoccurred in a previous month, quarter, year, or other time period. Thereceived configuration settings can be stored in a database as settings1223. The configuration settings that specify the activation of one ormore sensors can be used by sensor data control system 1220 ingenerating a configuration setup request for delivery to gateway 1211 atmonitored location 1210. In one embodiment, the configuration setuprequest is an HTTP message delivered in response to a system statusupdate received by sensor data control system 1220 from gateway 1211 viathe web API. In the example embodiment described above, theconfiguration setup request can be delivered to the gateway when acomparison indicates that a reference hash value computed by the sensordata control system is different from a status hash value computed bythe node device at the monitored location.

The delivery of a configuration setup request by sensor data controlsystem 1220 to gateway 1211 is illustrated as process element “2” inFIG. 12 . Where the configuration setup request relates to an operationof node device 1212-1 or one or more of supported sensor module unitsS1-S4, gateway 1211 can deliver a packet containing configuration setupinformation to node device 1212-1 via the wireless mesh network. Thiscommunication is illustrated as process element “3” in FIG. 12 .

Based on the receipt of configuration setup information via the wirelessmesh network, node device 1212-1 can activate one or more sensorssupported by sensor module unit S3. This configuration change isillustrated as process element “4” in FIG. 12 . Based on the change inconfiguration, node device 1212-1 can begin to collect sensor readingsfor the one or more newly activated sensors. The sensor data valuescollected for the one or more newly activated sensors can then bedelivered to gateway 1211 as data packets via the wireless mesh networkfor subsequent delivery to sensor data control system 1220.

Additionally, node device 1212-1 can provide gateway 1211 with a statuspacket that includes information regarding the current configuration ofnode device 1212-1 and the supported sensor module units S1-S4. In oneembodiment, node device 1212-1 includes a status hash value computed bynode device 1212-1 using the updated configuration settings. Thecommunication of the information regarding the current configuration isillustrated as process element “5”. This information is then provided bygateway 1211 to sensor data control system 1220 as part of a systemstatus update, which is illustrated as process element “6”. Theinformation regarding the current configuration of node device 1212-1and supported sensor module units S1-S4 can then be stored in a databaseas system status 1224.

The stored system status 1224 would then be available for presentationto sensor application 1230. In one embodiment, sensor application 1230can retrieve system status 1224 using an HTTP GET method via the webAPI. The communication of system status 1224 from sensor data controlsystem 1220 to sensor application 1230 in response to the HTTP GETmethod request is illustrated as process element “7” in FIG. 12 . Ingeneral, the provision of system status information to sensorapplication 1230 enables sensor application 1230 to confirm that thesensor network has been configured as specified.

The confirmation of system status in the context of configurationrequests can play a key role in the utility of a sensor service. Forexample, a confirmation of sensor activation would enable sensorapplication 1230 to determine that needed sensor service functionalityin a mission critical application (e.g., auditing) is now online. Inanother example, a confirmation of sensor deactivation would enablesensor application 1230 to determine that sensor service functionalityhas been disabled and that billing charges will not continue to accrue.

As noted, the usage of hash values computed based on configurationsettings enables the sensor data control system to verify on a continualbasis in an efficient manner the configuration settings of node devicesand supported sensor module units at the monitored location. The statushash value returned in the system status update enables the sensor datacontrol system to determine whether the current configuration settingsof a node device and supported sensor module units match theconfiguration settings stored at the sensor data control system. If thereference hash value and the returned status hash value do not match,then the sensor data control system would continue to exert itsconfiguration control by re-transmitting a configuration setup requestto the gateway at the monitored location for delivery to the nodedevice.

In one scenario, the system status update from the node device canreflect an unauthorized configuration setting change implemented by thenode device and/or sensor module unit(s). In this case, the sensor datacontrol system would determine that the status hash value does not matchthe reference hash value, then send a configuration setup request to thegateway to bring the node device and/or supported sensor module unitsback to an operating state having the authorized configuration settingsstored at the sensor data control system.

In another scenario, the system status update from the node device canreflect a configuration setting change due to the drop-in replacement ofa sensor module unit. For example, a defective sensor module unit can bereplaced with a new sensor module unit that has not been configured. Inthis scenario, the status hash value returned by the node device in thenext system status update would not match the reference hash value atthe sensor data control system. The sensor data control system wouldthen transmit to the gateway for delivery to the node device, aconfiguration setup request having the currently stored configurationsettings used by the previous sensor module unit. The configurationsettings for the now replaced sensor module unit can then be applied tothe replacement sensor module unit, thereby enabling rapid configurationof the new sensor module unit. For example, the configuration settingscan include details for a plurality of Modbus interface commands used bythe previous sensor module unit. This rapid configuration would obviatethe need for re-specification of the individual Modbus commands used bythe previous sensor module unit.

FIG. 13 illustrates a third example of a sensor application process. Inthis example, assume that sensor application 1330 receives sensor dataand/or aggregation data from sensor data control system 1320 via the webAPI. This acquisition of sensor data and/or aggregation data can enablesensor application 1330 to perform a demand analysis on the sensor dataand/or aggregation data.

In a simple example, the demand analysis can be configured to comparesensor data and/or aggregation data to one or more threshold values(e.g., determine whether temperature reading from sensor X is greaterthan a threshold temperature value). The result of this demand analysisenables determination of whether a response action should be taken. In amore complex example, the demand analysis can be based on a defineddemand estimation function such as fxn(sensor1, sensor2, . . . sensorN).In yet another example, the demand analysis can represent acombinatorial analysis of multiple input values. Here, a conditionalanalysis of multiple independent demand components (e.g., (sensor1>X1AND sensor2>X2) OR sensor3<X3)) can be performed as part of the demandanalysis. As would be appreciated, a demand analysis based on aplurality of sources of sensor data and/or aggregation data can bedefined to infer a particular change in demand at a monitored location.

The demand analysis performed by sensor application 1330 can beconfigured to produce a response trigger. In one embodiment, thisresponse trigger can be used to effect a response action using one ormore control node devices 1312-n installed at monitored location 1310.In one embodiment, control node devices 1312-n can be connected togateway 1311 through wireless connections. In another embodiment,control node devices 1312-n can be connected to gateway 1311 throughwired connections.

Each control node device 1312-n can support one or more actuator moduleunits (A) that incorporate one or more actuators that can be used toeffect a response action at monitored location 1310. In one example,control node devices 1312-n can be similar to the example node devicesdescribed with reference to FIG. 5 . In this framework, control nodedevices 1312-n can also include a universal interface that enablesattachment of one or more actuator module units. In one embodiment, theactuator module units could be integrated with the control node device.In another embodiment, a control node device can represent a node deviceto which a sensor module unit and/or an actuator module unit isattached.

Actuator module units can be configured to effect various types ofresponse actions at monitored location 1310. As such, the plug-and-playnature of actuator module units would provide significant flexibility inconfiguring and/or re-configuring the response actions that are desiredto be effected at monitored location 1310. The particular types ofresponse actions that can be effected would be implementation dependent.To illustrate a range of the types of response actions that can beeffected by actuators supported by the actuator module units, considerthe following demand/response system examples.

In one example, the demand/response model can be designed to effect afeedback loop to control resource consumption at monitored location1310. In this scenario, the collection of sensor data and/or aggregationdata can be designed to enable an estimate of demand for a particularresource (e.g., water, electricity or gas consumption) at monitoredlocation 1310. Based on the demand analysis, sensor application 1330 canthen generate one or more response messages that are configured toadjust future consumption of the particular resource at monitoredlocation 1310. In a simple example, the one or more response messagescan be designed to instruct an actuator to initiate the display of avisual alert to personnel at monitored location 1310 that theconsumption of the particular resource is exceeding a threshold. Here,the visual alert can be provided by the actuator itself, or by anotherdevice coupled to the actuator. In another example, the one or moreresponse messages can be designed to instruct an actuator to transmit acontrol signal to a device to alter consumption of the particularresource. In one scenario, the actuator control signal can shut down orotherwise limit the operation (e.g., reduce light output) of a devicethat consumes the particular resource. In yet another example, the oneor more response messages can be designed to instruct an actuator totransmit a control signal to a device that governs the supply of theparticular resource to monitored location 1310. In one scenario, thecontrol signal can lower the maximum rate at which the particularresource can be supplied to monitored location 1310.

In another example, the demand/response model can be designed tomaintain a desired status at monitored location 1310. In this scenario,the sensor data and/or aggregation data can be designed to enabledetermination of the current state of a measureable quantity atmonitored location 1310. In one example, the measurable quantity canrepresent a temperature of a room or area, a supply level of a resource,a fullness of a storage or inventory area, an efficiency of operation ofone or more components, a level of activity or traffic, or any otherquantity having a level or target that is desired. In this scenario, thesensor data and/or aggregation data can be used to determine the currentstate of the measurable quantity. If the demand analysis indicates thatthe current state of the measurable quantity has hit a level of variancerelative to a target level, wherein the level of variance is beyond athreshold variance, then sensor application 1330 can generate one ormore response messages that can instruct one or more actuators atmonitored location 1310 to transmit a control signal that is operativeto reduce the variance in the measurable quantity.

For example, there may exist an area at monitored location 1310 thatdesires the temperature and/or humidity to be maintained at a certainlevel (e.g., refrigerated area, server room, surgical room, or othertemperature and/or humidity sensitive environment). When the analysis ofsensor data and/or aggregation data indicate that the currenttemperature and/or humidity has deviated too much from a target level,then one or more response messages can be produced to instruct anactuator to generate a control signal to adjust the operation of an HVACsystem that governs the particular area of monitored location 1310 oradjust a level of operation of one or more components that impacts thetemperature and/or humidity at that particular area of monitoredlocation 1310. For example, a control signal can be used to modify theoperation of a heat-generating component.

In another example, sensor data and/or aggregation data can be used todetect sub-optimal operation of one or more components at monitoredlocation 1310. In one scenario, temperature sensor readings can be usedto measure how well a current chiller (e.g., machine that cools air, asubstance or equipment) is working and to generate a control signal thatcan be used to signal the need for repair or for a new chiller to beobtained. For example, the control signal can be used to provide contactinformation for a repair technician or sales representative. In anotherscenario, sensor data and/or aggregation data that are indicative ofpower consumption relative to efficiency of operation can be used tosignal the need for repair or for a new unit to be obtained. In effect,the analysis of sensor data and/or aggregation data can be used toproduce sales opportunities at monitored location 1310.

More generally, sensor data and/or aggregation data can be used todetect malfunctions in equipment where a deviation from an expectedlevel of operation is detected through analysis. For example, a sumppump sensor can be used to detect when a sump pump is not working, orworking inefficiently. One or more response messages can then beproduced to instruct an actuator to generate a control signal to alertrelevant personnel at monitored location 1310. In another example,sensor data and/or aggregation data can be used to detect water leaks(e.g., water sensor) and for generating one or more response messagesthat can be used by an actuator to generate a control signal to alertrelevant personnel at monitored location 1310 in a timely manner.

In another example, the demand/response model can be designed todiscover and release unused resources at monitored location 1310. Inthis scenario, sensor data and/or aggregation data can be designed toeffect a determination of the current usage of resources at monitoredlocation 1310. In this context, the resources can represent temporary orshared offices, conference rooms, common areas, storage facilities, orother physical resources at monitored location 1310 that can bere-purposed or otherwise leveraged in a new capacity. In one example,sensor data and/or aggregation data can be used to determine the currentusage of a defined physical space by individuals, inanimate objects, orother items that have usage characteristics. If the demand analysisindicates that the defined physical space is unused or used at a levelbelow a threshold amount, then sensor application 1330 can generate oneor more response messages that can instruct actuators at monitoredlocation 1310 to transmit a control signal that is used to signal theavailability of at least part of the defined physical space. Oneapplication of such a demand/response model is to enable workplacereservation optimization such that reserved resources (e.g., conferencerooms) are released when sensor data and/or aggregation data (e.g.,light, sound, CO², or other sensor reading) indicate that the reservedresource is not being used. When sensor data and/or aggregation dataindicate that the reserved resource is not being used, then one or moreresponse messages can be used (e.g., message to a resource manager,receptionist, or other party responsible for overseeing use of thereserved resource) to release the reservation or otherwise indicate thecurrent availability of a previously-reserved resource.

In a related application, the demand/response model can be used todetermine and signal when resources can be used. For example, sensordata and/or aggregation data can be used to detect harmful conditionsthat preclude the occurrence of organized activities. For example, wetbulb globe temperature (WBGT) sensor readings, which represent acomposite temperature used to estimate the effect of temperature,humidity, wind speed (wind chill), and visible and infrared radiation(usually sunlight) on humans, can be used to detect whether organizedoutdoor activities should be held in a school, a military base, or otherorganization hosting an outdoor event. In a simple example, sensorapplication 1330 can generate one or more response messages that caninstruct actuators at monitored location 1310 to transmit a firstcontrol signal that is used to indicate that an organized activity canbe held (e.g., green light), a second control signal that is used toindicate than an organized activity cannot be held (e.g., red light), oranother control signal that is used to indicate one or more restrictionsfor an organized activity (e.g., warning lights and instructions).

As has been described, the demand/response model can represent ascenario where the demand analysis performed on sensor data and/oraggregation data is used to initiate one or more response actions by oneor more actuators at monitored location 1310. The exact form of theresponse action and the control signal mechanism used by the actuatorthat effects the response action can vary based on the sensorapplication. As noted with reference to FIG. 3 , sensor applicationsdirected to different segments of the marketplace can desire differenttypes of control actions.

In the present disclosure, it is recognized that the response messagesproduced by sensor application 1330 based on a demand/response model canrepresent a request for a configuration change of an actuator moduleunit at monitored location 1310. In submitting configuration settings tosensor data control system 1320, sensor application 1330 can use an HTTPPUT method to update a configuration setting that controls an operationof an actuator supported by an actuator module unit. This part of theprocess is illustrated as process element “1” in FIG. 13 . The submittedconfiguration settings can be stored in a database as settings 1323, andcan be used as the basis for adjusting the configuration of an actuatormodule unit at monitored location 1310.

As illustrated in FIG. 13 , the stored configuration setting 1323 thatspecifies the operation of an actuator module unit can be used by sensordata control system 1320 in generating one or more response messages fordelivery to gateway 1311 at monitored location 1310. The delivery of oneor more response messages by sensor data control system 1320 to gateway1311 is illustrated as process element “2” in FIG. 13 . Where theresponse message relates to an operation of actuator module unit Alsupported by node device 1312-1, gateway 1311 can deliver a packetcontaining actuator control information to node device 1312-1 via thewireless mesh network. This communication is illustrated as processelement “3” in FIG. 13 . Based on the receipt of actuator controlinformation via the wireless mesh network, node device 1312-1 candeliver the actuator control information to actuator module unit Al toeffect a control action desired by sensor application 1330. This controlaction is illustrated as process element “4” in FIG. 13 .

FIG. 14 illustrates a framework for delivering control actions. Ingeneral, a control action can produce a change in state in the nodedevice and/or supported actuator module units, wherein the change instate can be considered a controllable configuration setting. Asdescribed with reference to FIG. 11 , an update to configurationsettings at the monitored location can be initiated using aconfiguration setup request, wherein a configuration update packet canbe transmitted based on a comparison of a status hash value to areference hash value.

In one example, a control action can be treated in a manner similar to aconfiguration request. Consider for example a control action that isinitiated using analytics request 1432. In a manner similar to theprocess described in FIG. 11 , sensor data control system 1420 canreceive analytics request 1432 from a sensor application. Alternatively,the analytics request can be generated internally by sensor data controlsystem 1420.

Analytics request 1432 can be used to establish or modify one or moreconfiguration settings 1422 stored by sensor data control system 1420that are associated with a desired control action. Configurationsettings 1422 are used by a hash function to generate reference hashvalue 1424. Reference hash value 1424 can be evaluated using comparison1426 relative to status hash value 1414, which is received by sensordata control system 1420 as part of a system status update from a nodedevice at monitored location 1410. Configuration settings 1412 currentlystored by the node device are used by the same hash function to generatestatus hash value 1414 at monitored location 1410.

When comparison 1426 indicates that reference hash value 1424 isdifferent from status hash value 1414, then a control signal can begenerated that would initiate the transmission of a configuration updatepacket 1428 from sensor data control system 1420 to a gateway atmonitored location 1410. Configuration update packet 1428 can includecontrol action information that can be used to implement the desiredcontrol action at monitored location 1410. The implementation of thedesired control action would be reflected by updated configurationsettings 1412 at the relevant node device at monitored location 1410.After configuration settings 1412 have been updated, then the newlygenerated status hash value 1414 that is returned in a subsequent systemstatus update would match reference hash value 1424, thereby indicatingto sensor data control system 1420 that the control action has beensuccessfully implemented at monitored location 1410.

As has been described, a control action can be implemented in responseto a system status update received from monitored location 1410. Thisframework can be used where the control action is not time-sensitive.

Where the control action is time-sensitive, the control action can beimplemented based on analytics action 1434. In general, analytics action1434 can be used to produce immediate action by sensor data controlsystem 1420. As illustrated, analytics action 1434 would produce actionpacket 1429, which can be immediately transmitted to the gateway atmonitored location 1410 for delivery to the relevant node device. Unlikeconfiguration update packet 1428, the transmission of action packet 1429is not dependent on comparison 1426.

At sensor data control system 1420, the control action represented byaction packet 1429 would be used to update configuration settings 1422.The updated configuration settings 1422 would then be used to generate anew reference hash value 1424 that can be used in a comparison with thestatus hash value 1414 to be returned in the next system status update.If the control action contained in action packet 1429 is successfullyimplemented at monitored location 1410, then configuration settings 1412would be modified to reflect the implementation of the control action.The status hash value 1414 produced from the modified configurationsettings 1412 would then be returned to sensor data control system 1420in a system status update for comparison to reference hash value 1424.The successful implementation of the control action at monitoredlocation 1410 would cause status hash value 1414 to match reference hashvalue 1424. No further attempts at implementing the control action wouldtherefore be needed through the sending of a subsequent configurationupdate packet 1428 that includes the control action.

If, on the other hand, the control action in action packet 1429 is notimplemented at monitored location 1410 (e.g., due to transmissionerror), then configuration settings 1412 would not be modified andstatus hash value 1414 would remain the same. The return of theunchanged status hash value 1414 in a system status update would notmatch the new reference hash value 1424 generated using configurationssettings 1422 that have been updated to reflect the desired analyticsaction 1434. This failed comparison would trigger the transmission ofconfiguration update packet 1428, which would include new configurationsettings reflective of the desired analytics action 1434. In otherwords, the transmission of configuration update packet 1428 wouldrepresent another attempt to implement analytics action 1434 atmonitored location 1410 due to its apparent failed implementation asreflected by the system status update.

It should be noted that control actions need not be initiated bymessaging generated by elements (e.g., sensor applications) external tosensor data control system 1420. In one embodiment, sensor data controlsystem 1420 itself can generate requests or actions using internalanalytics.

The example configuration settings framework provided in FIGS. 11 and 14illustrates a process for centralized enforcement of configurationsettings. In the present disclosure it is recognized that configurationsettings can also be modified at the initiative of local elements at themonitored location. For example, a control action (e.g., thermostatchange) can be initiated under the direction of equipment or personnelat the monitored location without the knowledge of the sensor datacontrol system.

FIG. 15 illustrates a framework for handling locally-initiated controlactions. A locally-initiated control action can be generated throughmanual and/or automated initiatives that are outside of the control ofsensor data control system 1520. The locally-initiated control actioncan produce a change in configuration settings 1512, which change maynot be known by sensor data control system 1520. To alert sensor datacontrol system 1520 of the locally-initiated control action, actionupdate transmission 1519 is generated for delivery to sensor datacontrol system 1520.

The contents of action update transmission 1519 can be used by sensordata control system 1522 to change configuration settings 1522. Thischange in configuration settings 1522 would correspond to the change inconfiguration settings 1512 such that reference hash value 1524 wouldmatch status hash value 1514, thereby preventing an immediate reversalof the locally-initiated control action at monitored location 1510.

As illustrated, the receipt of action update transmission 1519 can alsobe designed to produce an override flag message that seeks approval ofthe locally-initiated control action. Since the sensor data controlsystem 1520 did not initiate the locally-initiated control action,sensor data control system 1520 can be configured to initiate approvalprocess 1530 to assure that the locally-initiated control action isallowed to persist. As would be appreciated, the particular approvalprocess 1530 used would be implementation dependant. In one example,approval process 1530 can involve external approval by a customerthrough a sensor application. In another example, approval process 1530can involve a pre-defined set of rules that can be used to validate thelocally-initiated control action.

If approval process 1530 approves the locally-initiated control action,then the validation of the locally-initiated control action can berecorded and the locally-initiated control action can remain in force.This would result because reference hash value 1524 would match statushash value 1514.

If, on the other hand, approval process 1530 does not approve thelocally-initiated control action, then reverse action message 1529 canbe generated. In one embodiment, reverse action message 1529 can beapplied as a change to configuration settings 1522 such that thelocally-initiated control action is reversed or otherwise neutralized.This change in configuration settings 1522 would produce a change inreference hash value 1524 such that comparison 1526 would detect amismatch between the new reference hash value 1524 and status hash value1514 returned in the system status update. Recall that status hash value1514 reflects the locally-initiated control action. This detectedmismatch by comparison 1526 would yield a control signal that initiatesa transmission of configuration update packet 1528 to the gateway atmonitored location 1510 that seeks to reverse or otherwise neutralizethe locally-initiated control action. In one embodiment, a configurationupdate packet can be sent immediately instead of waiting for a systemstatus update packet from the monitored location. This immediatetransmission of a configuration update packet would be similar to theuse of action packet 1429 as illustrated in FIG. 14 .

In one embodiment, reference hash values 1424, 1524 and status hashvalues 1414, 1514 are each based on configuration settings for both thenode device and one or more supported actuator module units. In anotherembodiment, a first reference hash value is based on configurationsettings for a node device, and one or more additional reference hashvalues are based on configuration settings for one or more respectiveactuator module units supported by the node device. In this embodiment,multiple comparisons can be performed based on multiple status hashvalues returned in a system status update.

It should be noted that the control action framework based onconfiguration settings need not be used for every control actionimplemented at the monitored location. Some control actions, forexample, may not be reflected in the configuration settings. This can bethe case, for example, where the control action represents anon-critical function, a function that need not be monitored, a functiondesignated primarily for local control, or any other function having ascope of control outside of the context of the sensor data controlsystem.

As has been described, the sensors as a service model promotes the openusage of sensors and the data collected by them to any party having aninterest in at least part of a monitored location. Discrete sensorapplications can be developed to leverage the sensor service forparticular industry or application segments.

Another embodiment of the present disclosure can provide a machineand/or computer readable storage and/or medium, having stored thereon, amachine code and/or a computer program having at least one code sectionexecutable by a machine and/or a computer, thereby causing the machineand/or computer to perform the steps as described herein.

Those of skill in the relevant art would appreciate that the variousillustrative blocks, modules, elements, components, and methodsdescribed herein may be implemented as electronic hardware, computersoftware, or combinations of both. To illustrate this interchangeabilityof hardware and software, various illustrative blocks, modules,elements, components, methods, and algorithms have been described abovegenerally in terms of their functionality. Whether such functionality isimplemented as hardware or software depends upon the particularapplication and design constraints imposed on the overall system. Thoseof skill in the relevant art can implement the described functionalityin varying ways for each particular application. Various components andblocks may be arranged differently (e.g., arranged in a different order,or partitioned in a different way) all without departing from the scopeof the subject technology.

These and other aspects of the present disclosure will become apparentto those skilled in the relevant art by a review of the precedingdetailed disclosure. Although a number of salient features of thepresent disclosure have been described above, the principles in thepresent disclosure are capable of other embodiments and of beingpracticed and carried out in various ways that would be apparent to oneof skill in the relevant art after reading the present disclosure,therefore the above disclosure should not be considered to be exclusiveof these other embodiments. Also, it is to be understood that thephraseology and terminology employed herein are for the purposes ofdescription and should not be regarded as limiting.

What is claimed is:
 1. A method, comprising: transmitting, by a sensordata control system, a configuration message for delivery to a wirelessnode that supports one or more sensors, the configuration messageincluding configuration information that enables the wireless node tochange at least one configuration setting; comparing, by the sensor datacontrol system, a first configuration hash value generated based oncurrent configuration settings of the wireless node to a secondconfiguration hash value generated based on the configurationinformation; and when the comparison indicates that the firstconfiguration hash value is different from the second configuration hashvalue, retransmitting, by the sensor data control system, theconfiguration message.
 2. The method of claim 1, wherein the at leastone configuration setting enables activation of one or more sensorssupported by the wireless node from a deactivated state.
 3. The methodof claim 1, wherein the at least one configuration setting enables achange of a measurement resolution of one or more sensors supported bythe wireless node.
 4. The method of claim 1, wherein the at least oneconfiguration setting enables a change of a polling frequency of thewireless node.
 5. The method of claim 1, wherein the at least oneconfiguration setting enables a change of a sampling frequency by one ormore sensors supported by the wireless node.
 6. The method of claim 1,wherein the at least one configuration setting enables a change of adevice address or register address for a Modbus interface commandgenerated by the wireless node.
 7. The method of claim 1, wherein the atleast one configuration setting enables a change of a state in anactuator device.
 8. A method, comprising: receiving, by a sensor datacontrol system, a status message associated with a wireless node, thestatus message including a first configuration hash value based oncurrent configuration settings of the wireless node; comparing, by thesensor data control system, the first configuration hash value to asecond configuration hash value produced by the sensor data controlsystem based on a stored set of configuration settings for the wirelessnode; and initiating a transmission of new configuration setting fordelivery to the wireless node when the comparison indicates that thefirst configuration hash value is different from the secondconfiguration hash value.
 9. The method of claim 8, wherein the newconfiguration setting enables an activation of one or more sensors froma deactivated state.
 10. The method of claim 8, wherein the newconfiguration setting enables a change in measurement resolution of oneor more sensors.
 11. The method of claim 8, wherein the newconfiguration setting enables a change in polling frequency by thewireless node.
 12. The method of claim 8, wherein the new configurationsetting enables a change in sampling frequency by one or more sensors.13. The method of claim 8, wherein the new configuration setting enablesa change in a device address or register address for a Modbus interfacecommand.
 14. The method of claim 8, wherein the new configurationsetting enables a change in state of an actuator device.
 15. Anon-transitory computer-readable medium having a configuration updatetool stored thereon for use by one or more server devices, theconfiguration tool including: a transmission section that when executed,causes the configuration update tool to transmit a configuration messagefor delivery to a wireless node that supports one or more sensors, theconfiguration message including configuration information that enablesthe wireless node to change at least one configuration setting; acomparison section that when executed, causes the configuration updatetool to compare a first configuration hash value generated based oncurrent configuration settings of the wireless node to a secondconfiguration hash value generated based on the configurationinformation; and an update section that when executed, causes theconfiguration update tool to initiate a configuration updateretransmission when the comparison indicates that the firstconfiguration hash value is different from the second configuration hashvalue, wherein the configuration update retransmission includes theconfiguration information.
 16. The non-transitory computer-readablemedium of claim 15, wherein the at least one configuration settingenables activation of one or more sensors supported by the wireless nodefrom a deactivated state.
 17. The non-transitory computer-readablemedium of claim 15, wherein the at least one configuration settingenables a change of a measurement resolution of one or more sensorssupported by the wireless node.
 18. The non-transitory computer-readablemedium of claim 15, wherein the at least one configuration settingenables a change of a polling frequency of the wireless node.
 19. Thenon-transitory computer-readable medium of claim 15, wherein the atleast one configuration setting enables a change of a device address orregister address for a Modbus interface command generated by thewireless node.
 20. The non-transitory computer-readable medium of claim15, wherein the at least one configuration setting enables a change of astate in an actuator device.